package com.tanhua.manager.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.tanhua.manager.domain.Log;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;

/**
 * @author liuyp
 * @date 2021/02/24
 */
public interface LogMapper extends BaseMapper<Log> {

    /**
     * 按照类型统计今天的用户数量
     */
    @Select("SELECT COUNT(*) FROM tb_log WHERE log_time = #{date} AND TYPE = #{type}")
    Long queryUsersCountByType(@Param("date") String date, @Param("type") String type);

    /**
     * 统计今天活跃用户数量
     * @param date 日期
     * @return 活跃用户数量
     */
    @Select("SELECT COUNT(DISTINCT user_id) FROM tb_log WHERE log_time = #{date}")
    Long queryActiveUserCount(String date);

    /**
     * 统计次日留存用户数量
     * @param today 统计日期（今天）
     * @param yesterday 昨天日期
     * @return 次日留存数量
     */
    @Select("SELECT count(DISTINCT user_id) FROM tb_log WHERE log_time = #{today} AND user_id IN (SELECT user_id FROM tb_log WHERE log_time = #{yesterday} AND TYPE = '0102')\n")
    Long queryRetentionUserCount(@Param("today") String today, @Param("yesterday") String yesterday);
}
